package cn.declare.service.talent;

import cn.declare.bean.talent.Talentdemand;
import cn.declare.bean.talent.Talenttype;
import cn.declare.bean.variation.Variation;
import cn.declare.vo.talent.TalentdemandVo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * author 岳静贤
 * 人才情况service层接口
 */
public interface TalentService {
    /**
     * 获取全部人才类型
     * 用处：给select下拉框进行赋值
     * @return List<Talenttype>
     */
    List<Talenttype> getTalentType();

    /**
     * 根据人才类型获取id最大的数据   即最新数据   普通工人
     * @param employeetype
     * @return   List<Talentdemand>
     */
    Talentdemand getFindByType(Integer employeetype);

    /**
     * 两表关联获取state字段值
     * @param employeetype
     * @return  VO
     */
    TalentdemandVo getFindByState(Integer employeetype);

    /**
     * 增加方法
     * @param talentdemandVo
     * @return  Talentdemand对象
     */
    int getTalentAdd(TalentdemandVo talentdemandVo);

    /**
     * 查询表中全部数据，给企业管理员审批
     * @return List<TalentdemandVo>
     */
    List<TalentdemandVo> getFindAll();

    /**
     * 查询人才类型是急需人才类型的数据
     * @return  List<Talentdemand>
     */
    List<Talentdemand> getFindByTalentType();

    /**
     * 审批时的查看功能  根据id查询全部数据
     * @param id
     * @return TalentdemandVo
     */
    TalentdemandVo getFindById(Integer id);

    /**
     * 审批模块的修改
     * @param talentdemandVo
     * @return int
     */
    int getUpdate(TalentdemandVo talentdemandVo);

    /**
     * 急需人才的修改
     * @param talentdemandVo
     * @return int
     */
    int getUpdateNeed(TalentdemandVo talentdemandVo);

    /**
     * 审批时急需人才模块中的急需人才类型
     * @param id
     * @return
     */
    TalentdemandVo getNeed(Integer id);

    /**
     * 审批时的查看功能  根据id查询全部数据(急需人才)
     * @param id
     * @return TalentdemandVo
     */
    TalentdemandVo getFindNeed(Integer id);

    /**
     * 如果审批未通过，填报页面则需要修改
     * @param employeetype    根据id查询全部数据
     * @return 对象
     */
    TalentdemandVo getPutong(Integer employeetype);

    /**
     * 如果审批未通过，填报页面则需要修改，查看急需人才情况
     * @param employeetype
     * @return
     */
    TalentdemandVo getJixu(Integer employeetype);

    /**
     * 如果审批未通过，填报页面则需要修改
     * @param talentdemandVo
     * @return
     */
    int getPutongUpdate(TalentdemandVo talentdemandVo);

    /**
     * 如果审批未通过，填报页面的急需人才需要修改
     * @param talentdemandVo
     * @return
     */
    int getJiXuUpdate(TalentdemandVo talentdemandVo);

    /**
     * 审批未通过的修改功能
     * @return
     */
    List<Variation> getVariation();

    /**
     * 历史记录功能
     * @param startDate 开始日期
     * @param lastDate  结束日期
     * @return
     */
    List<Talentdemand> getFindByCreatDate(@Param("startDate")Date startDate,
                                          @Param("lastDate") Date lastDate);

    List<Talentdemand> getFindByCreatDate02(@Param("startDate")Date startDate,
                                            @Param("lastDate") Date lastDate);

    public List<TalentdemandVo> listPharmacy();
}
